博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2完成增删改查
阅读量:5077 次
发布时间:2019-06-12

本文共 10703 字,大约阅读时间需要 35 分钟。

利用struts完成增删改查:

思路:
1、导入相关的pom依赖(struts、自定义标签库的依赖)
2、分页的tag类导入、z.tld、完成web.xml的配置
3、dao层去访问数据
4、web层去调用dao层给前台返回数据
5、在struts_sy.xml进行配置
6、写jsp界面

 

1、导入相关的pom依赖(struts、自定义标签库的依赖)

1 
3
4.0.0
4
com.psy
5
caoluo
6
war
7
0.0.1-SNAPSHOT
8
caoluo Maven Webapp
9
http://maven.apache.org
10
11 12
13
junit
14
junit
15
4.12
16
test
17
18 19 20
21
javax.servlet
22
javax.servlet-api
23
4.0.1
24
provided
25
26 27
28
org.apache.struts
29
struts2-core
30
2.5.13
31
32 33 34
35
36
jstl
37
jstl
38
1.2
39
40
41
taglibs
42
standard
43
1.1.2
44
45 46
47
mysql
48
mysql-connector-java
49
5.1.44
50
51 52
53
54
org.apache.tomcat
55
tomcat-jsp-api
56
8.0.47
57
58 59
60
61
T224_caoluo
62
63
64
org.apache.maven.plugins
65
maven-compiler-plugin
66
3.7.0
67
68
1.869
1.8
70
UTF-8
71
72
73
74 75
76

2、分页的tag类导入、z.tld、完成web.xml的配置

1 /**  2  * 分页工具类  3  *  4  */  5 public class PageBean {  6   7     private int page = 1;// 页码  8   9     private int rows = 4;// 页大小 10  11     private int total = 0;// 总记录数 12  13     private boolean pagination = true;// 是否分页 14     // 获取前台向后台提交的所有参数 15     private Map
parameterMap; 16 // 获取上一次访问后台的url 17 private String url; 18 19 /** 20 * 初始化pagebean 21 * 22 * @param req 23 */ 24 public void setRequest(HttpServletRequest req) { 25 this.setPage(req.getParameter("page")); 26 this.setRows(req.getParameter("rows")); 27 // 只有jsp页面上填写pagination=false才是不分页 28 this.setPagination(!"fasle".equals(req.getParameter("pagination"))); 29 this.setParameterMap(req.getParameterMap()); 30 this.setUrl(req.getRequestURL().toString()); 31 } 32 33 public int getMaxPage() { 34 return this.total % this.rows == 0 ? this.total / this.rows : this.total / this.rows + 1; 35 } 36 37 public int nextPage() { 38 return this.page < this.getMaxPage() ? this.page + 1 : this.getMaxPage(); 39 } 40 41 public int previousPage() { 42 return this.page > 1 ? this.page - 1 : 1; 43 } 44 45 public PageBean() { 46 super(); 47 } 48 49 public int getPage() { 50 return page; 51 } 52 53 public void setPage(int page) { 54 this.page = page; 55 } 56 57 public void setPage(String page) { 58 this.page = StringUtils.isBlank(page) ? this.page : Integer.valueOf(page); 59 } 60 61 public int getRows() { 62 return rows; 63 } 64 65 public void setRows(int rows) { 66 this.rows = rows; 67 } 68 69 public void setRows(String rows) { 70 this.rows = StringUtils.isBlank(rows) ? this.rows : Integer.valueOf(rows); 71 } 72 73 public int getTotal() { 74 return total; 75 } 76 77 public void setTotal(int total) { 78 this.total = total; 79 } 80 81 public void setTotal(String total) { 82 this.total = Integer.parseInt(total); 83 } 84 85 public boolean isPagination() { 86 return pagination; 87 } 88 89 public void setPagination(boolean pagination) { 90 this.pagination = pagination; 91 } 92 93 public Map
getParameterMap() { 94 return parameterMap; 95 } 96 97 public void setParameterMap(Map
parameterMap) { 98 this.parameterMap = parameterMap; 99 }100 101 public String getUrl() {102 return url;103 }104 105 public void setUrl(String url) {106 this.url = url;107 }108 109 /**110 * 获得起始记录的下标111 * 112 * @return113 */114 public int getStartIndex() {115 return (this.page - 1) * this.rows;116 }117 118 @Override119 public String toString() {120 return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", pagination=" + pagination121 + ", parameterMap=" + parameterMap + ", url=" + url + "]";122 }123 124 }

z.tld

1.1 core library
core
1.1
z
/zking
page
com.tag.PageTag
JSP
pageBean
true
true

web.xml配置

1 
2
encodingFiter
3
com.util.EncodingFiter
4
5
6
encodingFiter
7
/*
8
9 10
11
struts
12
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
13
14
15
struts
16
*.action
17

dao层去访问数据

1 public class ClazzDao extends BaseDao
{ 2 /** 3 * 查询分页 查询单个数据公用的方法 4 * @param clz 5 * @param pageBean 6 * @return 7 */ 8 public List
list(Clazz clz,PageBean pageBean){ 9 String sql="select * from t_struts_class where true";10 String cname=clz.getCname();11 int cid=clz.getCid();12 if(cid!=0) {13 sql +=" and cid = "+cid;14 }15 if(StringUtils.isNotBlank(cname)) {16 sql +=" and cname like '%"+cname+"%'";17 }18 return super.executeQuery(sql, Clazz.class, pageBean);19 20 }21 /**22 * 新增方法23 * @param clz24 * @return25 */26 public int add(Clazz clz) {27 String sql="insert into t_struts_class values(?,?,?,?)";28 return super.executeUpdate(sql, new String[] {"cid","cname","cteacher","pic"}, clz);29 }30 /**31 * 修改方法32 * @param clz33 * @return34 */35 public int edit(Clazz clz) {36 String sql="update t_struts_class set cname=?,cteacher=?,pic=? where cid=?";37 return super.executeUpdate(sql, new String[] {"cname","cteacher","pic","cid"}, clz);38 }39 /**40 * 删除方法41 * @param clz42 * @return43 */44 public int del(Clazz clz) {45 String sql="delete from t_struts_class where cid=?";46 return super.executeUpdate(sql, new String[] {"cid"}, clz);47 }48 49 }

web层调用dao返回数据给jsp

1 public class ClazzAction extends BaseAction implements ModelDriven
{ 2 3 4 private ClazzDao clzDao=new ClazzDao(); 5 private Clazz clz=new Clazz(); 6 7 public String list() { 8 PageBean pageBean=new PageBean(); 9 pageBean.setRequest(request);10 List
list=this.clzDao.list(clz, pageBean);11 request.setAttribute("clzList", list);12 request.setAttribute("pageBean", pageBean);13 return "list";14 }15 /**16 * 跳转新增修改页面的工用方法17 * @return18 */19 public String preSave() {20 if(clz.getCid()!=0) {21 Clazz c=this.clzDao.list(clz, null).get(0);22 request.setAttribute("clz", c);23 }24 return "preSave";25 26 }27 /**28 * 新增29 * @return30 */31 public String add() {32 result= this.clzDao.add(clz);33 return "toList";34 35 }36 /**37 * 修改38 * @return39 */40 public String edit() {41 this.clzDao.edit(clz);42 return "toList";43 44 }45 /**46 * 删除47 * @return48 */49 public String del() {50 this.clzDao.del(clz);51 return "toList";52 53 }54 @Override55 public Clazz getModel() {56 // TODO Auto-generated method stub57 return clz;58 }59 60 61 }

在struts_sy.xml进行配置

1 
2
3
4
/clzList.jsp
5
/clzEdit.jsp
6
/clz_list
7
8
9

写jsp界面

首页:

1  2  3     
5 班级名:
6 7
8 新增 9
20
10 11
12
13
14
15
16
17
18 19
21
22
23
24
25
30
31 32
编号 班级名 教员 图片 操作
${c.cid } ${c.cname } ${c.cteacher } ${c.pic } 26 修改  27 删除  28 上传图片  29
33 34
35 36

新增页面与修改公用页面

1  2 
3
4 编号:
5 班级名:
6 教员:
7 8
9
10

运行效果图

首页:

新增:

修改:

 

完成;

转载于:https://www.cnblogs.com/AluoKa/p/11108883.html

你可能感兴趣的文章
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>
构建之法阅读笔记02
查看>>
添加按钮
查看>>
移动端页面开发适配 rem布局原理
查看>>
Ajax中文乱码问题解决方法(服务器端用servlet)
查看>>